Motor velocity and acceleration determining method, acceleration/deceleration generating method, acceleration/deceleration controlling method, acceleration/deceleration controlling apparatus and motor controlling apparatus

ABSTRACT

Acceleration/deceleration control is performed on the basis of a designated jerk control such that a maximum absolute value Jmax of jerk value, which is differential value of acceleration, is made not larger than a predetermined value when a commanded quantity of servomotor movement is smaller than a minimum quantity Smin of motor movement which is required to allow the movement of the servomotor to reach a predetermined maximum velocity Vmax and a predetermined maximum acceleration Amax.

BACKGROUND OF THE INVENTION

[0001] The present invention relates to control of acceleration/deceleration of a motor and particularly relates to generation of an acceleration/deceleration curve to make it possible to suppress vibration given to a subject of control such as a robot manipulator when a command to move by a short distance is given to the subject of control.

[0002] Heretofore, a manipulator does a work while repeating an operation of moving an end effector from a taught point to the next taught point as designated by a user. In the operation from a taught point to another taught point, acceleration/deceleration control over a servomotor actuating a joint of the manipulator is performed. Hence, the end effector is accelerated on the basis of a predetermined acceleration/deceleration curve until the acceleration reaches a predetermined maximum velocity. After a predetermined constant velocity period, the end effector is decelerated on the basis of the predetermined acceleration/deceleration curve in the same manner as in the case of acceleration. Hence, the operation of stopping the end effector at the next taught point is achieved. In such servomotor acceleration/deceleration control, a trapezoidal acceleration/deceleration curve may be used. In such an acceleration/deceleration curve, however, acceleration becomes discontinuous at a velocity switching point when acceleration starts, ends, etc. Both impact and vibration given to the manipulator become large at this point of time. To avoid such impact and vibration, therefore, there has been proposed acceleration/deceleration control in which such an acceleration/deceleration curve is changed smoothly over the whole region from the start point via the maximum velocity to the end point to thereby ensure continuity of acceleration.

[0003] Such acceleration/deceleration control, however, has a problem that vibration of the manipulator is intensified when a commanded quantity of motor movement is smaller than a minimum quantity of movement which is required to allow the movement of the motor to reach predetermined operating velocity and operating acceleration (hereinafter defined as “a small movement”) . To solve the problem of vibration in such small movement, Japanese Patent Application No. 2-22559 has proposed a method in which: simulation is made in advance to generate a correction data table; optimum maximum velocity, acceleration time and deceleration time are determined on the basis of the of these values to thereby suppress vibration.

[0004] Data in the correction table are, however, obtained as results of simulation and are not determined on the basis of predetermined algorithm. Hence, trial and error must be repeated for generating such a correction table.

SUMMARY OF THE INVENTION

[0005] The present invention is designed upon such circumstances and an object thereof is to provide: a method for determining a maximum velocity and a maximum acceleration so as to generate an acceleration/deceleration curve by which vibration given to a mechanical system can be suppressed when a quantity of movement corresponding to the small movement is commanded in acceleration/deceleration control with acceleration kept continuous; an acceleration/deceleration generating method for generating an acceleration/deceleration curve on the basis of the maximum velocity and maximum acceleration determined by the aforementioned maximum velocity and maximum acceleration determining method; an acceleration/deceleration control method using the aforementioned maximum velocity and maximum acceleration determining method; an acceleration/deceleration control apparatus using the aforementioned acceleration/deceleration control method; a motor control apparatus using the aforementioned acceleration/deceleration control method; and so on.

[0006] (1) According to an aspect of the present invention, a motor velocity/acceleration determining method is configured as follows. In acceleration/deceleration control of changing acceleration continuously to thereby make acceleration or deceleration, there is provided a method of determining velocity and acceleration of a motor for generating an acceleration/deceleration curve of the motor in the case where a commanded quantity of motor movement is smaller than a minimum quantity of motor movement which is required to allow the movement of the motor to reach a predetermined maximum velocity and a predetermined maximum acceleration, wherein the method comprises a step of determining a maximum velocity and a maximum acceleration for performing a designated jerk control in accordance with the commanded quantity of motor movement so as to make a maximum absolute value of jerk value, which is differential value of acceleration, not larger than a predetermined value or equal to the predetermined value.

[0007] (2) According to another aspect of the present invention, a motor velocity/acceleration determining method is configured as follows. In acceleration/deceleration control of changing acceleration continuously to thereby make acceleration or deceleration, there is provided a method of determining velocity and acceleration of a motor for generating an acceleration/deceleration curve of the motor in the case where a commanded quantity of motor movement is smaller than a minimum quantity of motor movement which is required to allow the movement of the motor to reach a predetermined maximum velocity and a predetermined maximum acceleration, wherein the method comprises a step of determining a maximum velocity and a maximum acceleration by selecting and performing one of two processes in accordance with the commanded quantity of motor movement, the two processes consisting of processes of: determining a maximum velocity for performing a designated acceleration control in accordance with the commanded quantity of motor movement while adopting the predetermined maximum acceleration as a maximum acceleration for the control; and determining a maximum velocity and a maximum acceleration for performing a designated jerk control in accordance with the commanded quantity of motor movement so as to make a maximum absolute value of jerk value, which is differential value of acceleration, not larger than a predetermined value or equal to the predetermined value.

[0008] (3) According to a further aspect of the present invention, a motor velocity/acceleration determining method is such that, in the above paragraph (2), the predetermined value in the designated jerk control is the maximum absolute value of jerk value in the designated acceleration control at a switching point where the process is switched.

[0009] (4) According to a still further aspect of the present invention, a motor velocity/acceleration determining method is such that, in the above paragraph (3), the maximum absolute value of jerk value at the switching point is specified on the basis of a maximum velocity which is required to obtain the commanded quantity of motor movement by the predetermined maximum acceleration and on the basis of the predetermined maximum acceleration.

[0010] (5) According to another aspect of the present invention, a motor velocity/acceleration determining method is such that, in any one of the above paragraphs (3) and (4), setting of the switching point can be changed at user's option.

[0011] (6) According to a further aspect of the present invention, a motor velocity/acceleration determining method is such that, in any one of the above paragraphs (3) to (5), the switching point is designated by a nondimensional parameter.

[0012] (7) According to a still further aspect of the present invention, a motor velocity/acceleration determining method is such that, in the above paragraph (6), the parameter is set to be a ratio with respect to the minimum quantity of motor movement.

[0013] (8) According to another aspect of the present invention, a motor velocity/acceleration determining method is such that, in any one of the above paragraphs (1) to (7), the designated jerk control is provided for performing positioning of a subject of control while suppressing vibration of the subject.

[0014] (9) According to an aspect of the present invention, an acceleration/deceleration curve generating method is such that the acceleration/deceleration curve is generated on the basis of the maximum velocity and the maximum acceleration obtained by the motor velocity and acceleration determining method defined in any one of the above paragraphs (1) to (8).

[0015] (10) According to another aspect of the present invention, an acceleration/deceleration controlling method is configured as follows. That is there is provided a method for performing acceleration/deceleration control of a motor to make the motor accelerated/decelerated by changing acceleration of the motor continuously, the method comprising a step of performing acceleration/deceleration control on the basis of a designated jerk control so as to make a maximum absolute value of jerk value, which is differential value of acceleration, not larger than or constantly equal to a predetermined value in the case where a commanded quantity of motor movement is smaller than a minimum quantity of motor movement which is required to allow the movement of the motor to reach a predetermined maximum velocity and a predetermined maximum acceleration.

[0016] (11) According to a further aspect of the present invention, an acceleration/deceleration controlling method is configured as follows. That is there is provided a method for performing acceleration/deceleration control of a motor to make the motor accelerated/decelerated by changing acceleration of the motor continuously, the method comprising a step of selecting and performing one of two control processes in accordance with a commanded quantity of motor movement in the case where the commanded quantity of motor movement is smaller than a minimum quantity of motor movement which is required to allow the movement of the motor to reach a predetermined maximum velocity and a predetermined maximum acceleration, the two control processes consisting of a designated acceleration control and a designated jerk control, the designated acceleration control controlling the motor so as to make a maximum acceleration in an accelerating/decelerating operation equal to the predetermined maximum acceleration, the designated jerk control controlling the motor so as to make a maximum absolute value of jerk value, which is differential value of acceleration, not larger than or constantly equal to a predetermined value.

[0017] (12) According to a still further aspect of the present invention, an acceleration/deceleration controlling method is configured such that, in the above paragraph (11), the predetermined value in the designated jerk control is the maximum absolute value of jerk value in the designated acceleration control at a switching point where the process is switched.

[0018] (13) According to another aspect of the present invention, an acceleration/deceleration controlling method is such that, in the above paragraph (12), the maximum absolute value of jerk value at the switching point is specified on the basis of a maximum velocity which is required to obtain the commanded quantity of motor movement by the predetermined maximum acceleration and on the basis of the predetermined maximum acceleration.

[0019] (14) According to a further aspect of the present invention, an acceleration/deceleration controlling method is such that in any one of the above paragraphs (12) and (13), setting of the switching point can be changed at user's option.

[0020] (15) According to a still further aspect of the present invention, an acceleration/deceleration controlling method is such that, in any one of the above paragraphs (12) to (14), the switching point is designated by a nondimensional parameter.

[0021] (16) According to another aspect of the present invention, an acceleration/deceleration controlling method is such that, in the above paragraph (15), the parameter is set to be a ratio with respect to the minimum quantity of motor movement.

[0022] (17) According to a further aspect of the present invention, an acceleration/deceleration controlling method is such that, in any one of the above paragraphs (10) to (16), the designated jerk control is provided for performing positioning of a subject of control while suppressing vibration of the subject.

[0023] (18) According to an aspect of the present invention, an acceleration/deceleration control apparatus is as follows. That is, there is provided an acceleration/deceleration control apparatus for performing acceleration/deceleration control of a motor to make the motor accelerated/decelerated by changing acceleration of the motor continuously, the apparatus comprising: a velocity and acceleration determining means for determining a maximum velocity and a maximum acceleration for performing a designated jerk control so as to make a maximum absolute value of jerk value, which is differential value of acceleration, not larger than or constantly equal to a predetermined value, in the case where a commanded quantity of motor movement is smaller than a minimum quantity of motor movement which is required to allow the movement of the motor to reach a predetermined maximum velocity and a predetermined maximum acceleration; and a reference value generating means for generating and outputting a position reference value on the basis of the maximum velocity and maximum acceleration obtained by the velocity and acceleration determining means.

[0024] (19) According to another aspect of the present invention, an acceleration/deceleration control apparatus is as follows. That is, there is provided an acceleration/deceleration control apparatus for performing acceleration/deceleration control of a motor to make the motor accelerated/decelerated by changing acceleration of the motor continuously, the apparatus comprising: a velocity and acceleration determining means for determining a maximum velocity and a maximum acceleration by selecting and performing one of two processes in accordance with a commanded quantity of motor movement in the case where the commanded quantity of motor movement is smaller than a minimum quantity of motor movement which is required to allow the movement of the motor to reach a predetermined maximum velocity and a predetermined maximum acceleration, the two processes consisting of a process for newly determining a maximum velocity for performing a designated acceleration control on the basis of the commanded quantity of motor movement so as to make a maximum acceleration in an accelerating/decelerating operation equal to the predetermined maximum acceleration, and another process for newly determining a maximum velocity and a maximum acceleration for performing a designated jerk control on the basis of the commanded quantity of motor movement so as to make a maximum absolute value of jerk value, which is differential value of acceleration, not larger than or constantly equal to a predetermined value; and a reference value generating means for generating and outputting a position reference value on the basis of the maximum velocity and maximum acceleration obtained by the velocity and acceleration determining means.

[0025] (20) According to a further aspect of the present invention, an acceleration/deceleration control apparatus is such that, in the above paragraph (19), the predetermined value in the designated jerk control is the maximum absolute value of jerk value in the designated acceleration control at a switching point where the process is switched.

[0026] (21) According to a still further aspect of the present invention, an acceleration/deceleration controlling apparatus is such that, in the above paragraph (20), the maximum absolute value of jerk value at the switching point is specified on the basis of a maximum velocity which is required to obtain the commanded quantity of motor movement by the predetermined maximum acceleration and on the basis of the predetermined maximum acceleration.

[0027] (22) According to another aspect of the present invention, an acceleration/deceleration controlling apparatus is such that, in any one of the above paragraphs (20) and (21), the acceleration/deceleration controlling apparatus further comprises a setting means for setting and changing the switching point.

[0028] (23) According to a further aspect of the present invention, an acceleration/deceleration controlling apparatus is such that, in any one of the above paragraphs (20) to (22), the switching point is designated by a nondimensional parameter.

[0029] (24) According to a still further aspect of the present invention, an acceleration/deceleration controlling apparatus is such that, in the above paragraph (23), the parameter is a ratio with respect to the minimum quantity of motor movement.

[0030] (25) According to another aspect of the present invention, an acceleration/deceleration controlling apparatus is such that, in any one of the above paragraphs (18) and (24), the designated jerk control is provided for performing positioning of a subject of control while suppressing the vibration of the subject.

[0031] (26) According to an aspect of the present invention, A motor control apparatus is such that the motor control apparatus receives a position reference value supplied from the acceleration/deceleration control apparatus defined in any one of the above paragraphs (18) to (25) so as to control at least one motor in accordance with the position reference value.

[0032] According to the paragraphs (1), (9), (10), (18) and (26) the maximum absolute value of jerk value is limited to a small value so that the maximum absolute value is not larger than a predetermined value. Hence, vibration given to a mechanical system driven by the motor can be suppressed.

[0033] According to the paragraphs (2), (9), (11), (19) and (26), one of the designated jerk control and the designated acceleration control is switched over to the other in accordance with the commanded quantity of motor movement. Hence, a system in consideration of shortening of moving time and suppression of vibration can be constructed.

[0034] According to the paragraphs (3), (4), (9), (12), (13) (20), (21) and (26), the predetermined value in the designated jerk control is the maximum jerk value (the maximum of the absolute value of jerk) in the designated acceleration control at the switching point. Hence, when the commanded quantity of motor movement is changed continuously, the obtained velocity, acceleration and moving time change continuously. A natural operation is therefore obtained as a whole.

[0035] According to the paragraphs (5), (9), (14), (22) and (26), the switching point can be changed at user's option. Hence, the optimum switching point can be set in accordance with the accuracy, the allowable range of vibration, etc. required for constructing the system.

[0036] According to the paragraphs (6), (7), (9), (15), (16), (23), (24) and (26), the switching point can be designated by a nondimensional parameter. Hence, the switching point can be set without considering the quantity of motor movement.

[0037] According to the paragraphs (8), (9), (17), (25) and (26), the designated jerk control can be performed. Hence, a subject of control can be positioned while vibration of the subject is suppressed.

BRIEF DESCRIPTION OF THE DRAWINGS

[0038]FIG. 1 is a block diagram showing the configuration of an acceleration/deceleration control apparatus according to an embodiment of the present invention;

[0039]FIG. 2 is a graph showing the relation between the quantity of motor movement and the value of jerk with nondimensional parameters in a designated acceleration control;

[0040]FIG. 3 is a graph showing an example of an acceleration/deceleration curve (sine curve);

[0041]FIG. 4 is a graph showing another example of the acceleration/deceleration curve (modified sine curve);

[0042]FIG. 5 is a graph showing a further example of the acceleration/deceleration curve (triangular curve);

[0043]FIG. 6 is a flow chart showing a flow of processing in an embodiment according to the present invention;

[0044]FIG. 7 is a graph showing a curve of jerk in the acceleration/deceleration curve depicted in FIG. 4;

[0045]FIG. 8 is a graph showing a curve of jerk in the acceleration/deceleration curve depicted in FIG. 5;

[0046]FIG. 9 is a graph showing a curve of jerk in the acceleration/deceleration curve depicted in FIG. 6;

[0047]FIG. 10 is a graph for explaining difference in residual vibration characteristic of a mechanical system with a small quantity of motor movement, between a designated acceleration control and a designated jerk control.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0048] Before the description of an embodiment of the present invention, requirements for acceleration/deceleration control will be described. One requirement is to suppress vibration given to a mechanical system as described above about the prior art. The other requirement is to shorten moving time (positioning time). A method of a designated acceleration control is considered as a method for satisfying the latter requirement in a small movement. This method is a control method in which the maximum velocity is reduced to thereby make it possible to operate a manipulator by the commanded quantity of movement while a predetermined maximum acceleration is adopted as the maximum acceleration. When the method is used in an acceleration/deceleration curve satisfying continuity of acceleration, there is, however, a tendency that the operation of the manipulator becomes vibratory.

[0049]FIG. 2 is an explanatory graph for explaining vibration of the manipulator in this case. FIG. 2 shows the relation (a curve designated by (a)) between the quantity of motor movement and the maximum of the jerk value in the designated acceleration control. In the graph, the horizontal axis and the vertical axis are represented by nondimensional parameters which are obtained by dividing the quantity of movement and the maximum of the jerk value by reference values respectively. Incidentally, (b) will be described later.

[0050] In FIG. 2, S is the commanded quantity of motor movement, and Smin is the minimum quantity of motor movement which is required to allow the movement of the motor to reach a predetermined maximum velocity and the predetermined maximum acceleration. J is the maximum jerk value at the commanded quantity S of movement, and Jmax is the maximum jerk value when the movement is not the small movement (that is, the commanded quantity S of movement is not smaller than Smin).

[0051] The jerk value used herein means a value obtained by differentiating acceleration. The jerk value is used as an indicator for knowing the tendency of vibration. It is known as a general tendency that vibration is intensified when the jerk value is large. Referring to FIG. 2 with this general tendency in mind, the jerk value increases as S/Smin approaches zero. That is, it can be guessed that vibration increases as the commanded quantity of movement decreases.

[0052] Summarizing the above description, vibration increases at the time of the small movement when the designated acceleration control is performed to attain reduction of moving time.

[0053] As shown as a shape (b) in FIG. 2, therefore, the present invention aims at suppressing residual vibration by limiting (controlling) the maximum jerk value to be not larger than a predetermined value in the area over a point X of the quantity of movement, though the maximum jerk value is getting larger according to decrease of the commanded quantity of movement in the designated acceleration control. The method for determining maximum velocity and maximum acceleration to generate an acceleration/deceleration curve for performing such a designated jerk control will be described below in detail.

[0054] Incidentally, in the designated jerk control, though a pronounced effect is expected to suppress vibration, the required moving time is prolonged compared with the designated acceleration control, on the other hand. On the contrary, the designated acceleration control has an advantage that the moving time can be shortened while it has a disadvantage that vibration is intensified. There are two types of work in the manipulator. That is, one type is the work requiring sufficient accuracy (work to avoid residual vibration), and the other type is the work giving priority to speed at the sacrifice of accuracy more or less. Therefore, it is preferable that the control method can be selected in accordance with the purpose of the work. For this reason, this embodiment of the present invention is configured so that one of the designated acceleration control and the designated jerk control can be switched over to the other and so that a point for switching the control can be set at user s option.

[0055]FIG. 1 is a block diagram showing the configuration of an acceleration/deceleration control apparatus according to an embodiment of the present invention.

[0056] In FIG. 1, an acceleration/deceleration control means 1 is constituted by a velocity and acceleration determining means 2, and a reference value generating means 3. The velocity and acceleration determining means 2 newly calculates a maximum velocity and a maximum acceleration corresponding to a commanded quantity of motor movement on the basis of the commanded quantity of movement and a predetermined maximum motor velocity and a predetermined maximum motor acceleration, and outputs results of the calculation. The reference value generating means 3 generates a position reference value (a target position or a difference between the present position and the target position) consecutively on the basis of the velocity and acceleration supplied from the velocity and acceleration determining means 2, and outputs the position reference value.

[0057] A servomotor controller 4 receives the position reference value from the acceleration/deceleration control means 1, converts the position reference value into a torque reference value and controls a servomotor 5 to operate on the basis of the torque reference value. The reference value generating means 3 makes an operation repeatedly in a predetermined period Tsample to form an orbit of movement from an orbit start point to an orbit end point and completes the operation at an operation termination time Tend. The servomotor controller 4 carries out feedback control so that the position of the servomotor 5 always follows a position reference supplied from the reference value generating means 3.

[0058] A setting means 6 can be operated by a user to set a switching point for switching over between the designated acceleration control and the designated jerk control. Incidentally, the data inputted by the user to set the switching point is a ratio (parameter C) to the minimum quantity Smin of motor movement and the ratio is designated by a number of 1 to 100. On the basis of the parameter C inputted through the setting means 6, the quantity Sx of motor movement (hereinafter referred to as “switching point Sx”) set on the apparatus side as a switching point is calculated by Sx=C×Smin/100. The switching point Sx is stored in a memory not shown, so that the setting of the switching point Sx is completed. Incidentally, the parameter C may be inputted as a direct value by the user or may be selected from a plurality of values by the user. It is a matter of course that the parameter C may be set as a fixed value on the apparatus side in advance.

[0059] FIGS. 3 to 5 are graphs showing examples of the acceleration curve satisfying the continuity of acceleration. That is, FIGS. 3 to 5 show a curve of a trigonometric function (a sine function) (hereinafter referred to as “sine curve”), a curve of a trigonometric function (sine function) modified with a uniform acceleration section provided between the start of acceleration and the end of acceleration (hereinafter referred to as “modified sine curve”), and a curve of a linear function (hereinafter referred to as “triangular curve” in terms of the shape thereof), respectively. Although FIGS. 3 to 5 show the case where one and the same value of maximum acceleration Amax is used both in an acceleration period and in a deceleration period, for the sake of simplicity, it is a matter of course that different values may be used. In the following description, the operation in the acceleration period (that is, 0≦t≦T (T: acceleration time)) will be described while the description of the operation in the deceleration period will be omitted.

[0060] The operation of this embodiment will be described below with reference to the drawings.

[0061]FIG. 6 is a flow chart showing a flow of processing in an embodiment of the present invention.

[0062] First, the minimum quantity Smin of motor movement which is required to allow the movement of the motor to reach a predetermined maximum velocity Vmax and a predetermined maximum acceleration Amax given by the user is calculated (S1). This calculation will be described below in connection with each acceleration/deceleration curve.

[0063] (1) Case of Sine Curve

[0064] Respective functions of acceleration a, velocity v and quantity s of movement with respect to t are shown as follows. $\begin{matrix} {a = {A_{\max} \cdot {\sin \begin{bmatrix} \begin{matrix} \pi \\ T \end{matrix} & t \end{bmatrix}}}} & (1) \\ {v = {\begin{matrix} {A_{\max}T} \\ \pi \end{matrix} - {\begin{matrix} {A_{\max}T} \\ \pi \end{matrix}\quad {\cos \quad\begin{bmatrix} \begin{matrix} \pi \\ T \end{matrix} & t \end{bmatrix}}}}} & (2) \\ {s = {{\begin{matrix} {A_{\max}T} \\ \pi \end{matrix}t} - {\begin{matrix} {A_{\max}T^{2}} \\ \pi^{2} \end{matrix}\quad {\sin \quad\begin{bmatrix} \begin{matrix} \pi \\ T \end{matrix} & t \end{bmatrix}}}}} & (3) \end{matrix}$

[0065] Incidentally, acceleration time T is obtained by T=π Vmax/2Amax because the velocity v reaches the predetermined value Vmax at the acceleration time T.

[0066] The minimum quantity Smin of motor movement is a value obtained by doubling an integrated value of velocity v in a period from time 0 to acceleration time T (because the quantity of movement in the deceleration period is added). That is, Smin is obtained by the following expression.

Smin=πVmax ²/2Amax  (4)

[0067] These in the case of the other acceleration/deceleration curves can be obtained in the same manner as described above. That is, in the case of the other acceleration/deceleration curves, they are obtained by combinations of the following expressions (5) to (8) and (9) to (12), respectively. $\begin{matrix} {{(2)\quad {Case}\quad {of}\quad {Modified}\quad {Sine}\quad {Curve}}\quad} & \quad \\ \left. \begin{matrix} {a = {A_{\max}{\sin \left\lbrack {\begin{matrix} {2\pi} \\ T \end{matrix}t} \right\rbrack}}} & \begin{bmatrix} 0 & {t < \begin{matrix} T \\ 4 \end{matrix}} \end{bmatrix} \\ {a = A_{\max}} & \left\lbrack {{\begin{matrix} T \\ 4 \end{matrix}\quad t} < {\begin{matrix} 3 \\ 4 \end{matrix}T}} \right\rbrack \\ {a = {A_{\max}{\sin \left\lbrack {{\begin{matrix} {2\pi} \\ T \end{matrix}\quad t} - \pi} \right\rbrack}}} & \left\lbrack {\begin{matrix} 3 \\ 4 \end{matrix}\quad T\quad t\quad T} \right\rbrack \end{matrix} \right\} & (5) \\ \left. \begin{matrix} {v = {\begin{matrix} {A_{\max}T} \\ {2\pi} \end{matrix} - {\begin{matrix} {A_{\max}T} \\ {2\pi} \end{matrix}{\cos \quad\left\lbrack {\begin{matrix} {2\pi} \\ T \end{matrix}t} \right\rbrack}}}} & \begin{bmatrix} 0 & {t < \begin{matrix} T \\ 4 \end{matrix}} \end{bmatrix} \\ {v = {{A_{\max}t} - \begin{matrix} {A_{\max}{T\left( {\pi - 2} \right)}} \\ {4\pi} \end{matrix}}} & \left\lbrack {{\begin{matrix} T \\ 4 \end{matrix}\quad t} < {\begin{matrix} 3 \\ 4 \end{matrix}T}} \right\rbrack \\ {v = {{\begin{matrix} {A_{\max}T} \\ {2\pi} \end{matrix}{\cos \quad\left\lbrack {{\begin{matrix} {2\pi} \\ T \end{matrix}\quad t} - \pi} \right\rbrack}} + \begin{matrix} {A_{\max}{T\left( {\pi + 1} \right)}} \\ {2\pi} \end{matrix}}} & \left\lbrack {\begin{matrix} 3 \\ 4 \end{matrix}\quad T\quad t\quad T} \right\rbrack \end{matrix} \right\} & (6) \\ \left. \begin{matrix} {s = {{\begin{matrix} {A_{\max}T} \\ {2\pi} \end{matrix}\quad t} - {\begin{matrix} {A_{\max}T^{2}} \\ {4\pi^{2}} \end{matrix}{\sin \quad\left\lbrack {\begin{matrix} {2\pi} \\ T \end{matrix}\quad t} \right\rbrack}}}} & \begin{bmatrix} 0 & {t < \begin{matrix} T \\ 4 \end{matrix}} \end{bmatrix} \\ {s = {{\begin{matrix} A_{\max} \\ 2 \end{matrix}\quad t^{2}} - {\begin{matrix} {A_{\max}{T\left( {\pi - 2} \right)}} \\ {4\pi} \end{matrix}t} + \begin{matrix} {A_{\max}{T\left( {\pi^{2} - 8} \right)}} \\ {32\pi^{2}} \end{matrix}}} & \left\lbrack {{\begin{matrix} T \\ 4 \end{matrix}\quad t} < {\begin{matrix} 3 \\ 4 \end{matrix}T}} \right\rbrack \\ {s = {{\begin{matrix} {A_{\max}{T\left( {\pi + 1} \right)}} \\ {2\pi} \end{matrix}\quad t} - {\begin{matrix} {A_{\max}T^{2}} \\ {4\pi^{2}} \end{matrix}{\sin \left\lbrack {{\begin{matrix} {2\pi} \\ T \end{matrix}\quad t} - \pi} \right\rbrack}} - \begin{matrix} {A_{\max}T} \\ 4 \end{matrix}}} & \left\lbrack {\begin{matrix} 3 \\ 4 \end{matrix}T\quad t\quad T} \right\rbrack \end{matrix} \right\} & (7) \\ \begin{matrix} {T = \begin{matrix} {2\pi \quad V_{\max}} \\ {\left( {\pi + 2} \right)A_{\max}} \end{matrix}} \\ {\quad {S_{\min} = \begin{matrix} {2\pi \quad V_{\max}^{2}} \\ {\left( {\pi + 2} \right)A_{\max}} \end{matrix}}} \end{matrix} & (8) \\ {{(3)\quad {Case}\quad {of}\quad {Triangular}\quad {Curve}}\quad} & \quad \\ \left. \begin{matrix} {a = {\begin{matrix} {2A_{\max}} \\ t \end{matrix}\quad t}} & \begin{bmatrix} 0 & {t < \begin{matrix} T \\ 2 \end{matrix}} \end{bmatrix} \\ {a = {{2A_{\max}} - {\begin{matrix} {2A_{\max}} \\ T \end{matrix}\quad t}}} & \begin{bmatrix} \begin{matrix} T \\ 2 \end{matrix} & t & T \end{bmatrix} \end{matrix} \right\} & (9) \\ \left. \begin{matrix} {v = {\begin{matrix} A_{\max} \\ T \end{matrix}\quad t^{2}}} & \begin{bmatrix} 0 & {t < \begin{matrix} T \\ 2 \end{matrix}} \end{bmatrix} \\ {v = {{2A_{\max}t} - {\begin{matrix} A_{\max} \\ T \end{matrix}\quad t^{2}} - \begin{matrix} {A_{\max}T} \\ 2 \end{matrix}}} & \begin{bmatrix} \begin{matrix} T \\ 2 \end{matrix} & t & T \end{bmatrix} \end{matrix} \right\} & (10) \\ \left. \begin{matrix} {s = {\begin{matrix} A_{\max} \\ {3T} \end{matrix}\quad t^{3}}} & \begin{bmatrix} 0 & {t < \begin{matrix} T \\ 2 \end{matrix}} \end{bmatrix} \\ {s = {{{- \begin{matrix} A_{\max} \\ {3T} \end{matrix}}t^{3}} + {A_{\max}t^{2}} - {\begin{matrix} {A_{\max}T} \\ 2 \end{matrix}t} + \begin{matrix} {A_{\max}T^{2}} \\ 12 \end{matrix}}} & \begin{bmatrix} \begin{matrix} T \\ 2 \end{matrix} & t & T \end{bmatrix} \end{matrix} \right\} & (11) \\ {T = \begin{matrix} {2V_{\max}} \\ A_{\max} \end{matrix}} & (12) \\ {S_{\min} = \begin{matrix} {2V^{2}\max} \\ A_{\max} \end{matrix}} & \quad \end{matrix}$

[0068] Then, the quantity S of motor movement (the commanded quantity of motor movement) instructed by the user is compared with the minimum quantity Smin of motor movement (S2). When the commanded quantity S of movement is smaller than the minimum quantity Smin of movement, the commanded quantity S of movement is further compared with the switching point Sx (S3). Incidentally, the switching point Sx is set in advance on the basis of the parameter C inputted by the user. The process for determining a maximum velocity and a maximum acceleration proceeds differently in one of three cases (I) to (III) in accordance with results of these comparisons, so that the maximum velocity and the maximum acceleration are determined in one of the three cases. Incidentally, the cases (II) and (III) corresponds to the small movement.

[0069] The method for determining a maximum velocity and a maximum acceleration will be described below in each of the three cases.

[0070] Case (I)

[0071] The case (I) does not correspond to small movement. Hence, the motor can be operated at the predetermined maximum velocity Vmax and the predetermined maximum acceleration Amax. Therefore, these predetermined values are adopted as the maximum velocity and maximum acceleration in acceleration/deceleration operation to be determined.

[0072] Case (II) (Designated Acceleration Control)

[0073] The predetermined maximum acceleration Amax is used as the maximum acceleration but the maximum velocity is re-calculated (S4). The maximum velocity Va re-calculated herein is the maximum value of velocity attained in operation of the commanded quantity S of motor movement under the condition that the motor is operated along an acceleration curve having the maximum acceleration Amax. Therefore, the maximum velocity Va is re-calculated by replacing Smin in the expressions (4), (8) and (12) with the commanded quantity S of movement in accordance with the acceleration/deceleration curves while keeping the maximum acceleration Amax intact. That is, the maximum velocity Va is given by the following expressions.

[0074] (1) Case of Sine Curve

Va=(2·Amax·S/π)^(½)

[0075] (2) Case of Modified Sine Curve

Va=((π+2)·Amax·S/2π)½

[0076] (3) Case of Triangular Curve

Va=(Amax·S/2)^(½)

[0077] Case (III) (Designated Jerk Control)

[0078] In this case, both maximum velocity Va and maximum acceleration Aa are calculated newly. First, the maximum value Jx of jerk value at the switching point Sx is obtained (S5). Then, both maximum velocity Va and maximum acceleration Aa are re-calculated so as to make the maximum value of jerk value Jx (S6). Incidentally, the relational expression between Jmax and the predetermined maximum velocity Vmax and maximum acceleration Amax is obtained prior to the calculation of Jx.

[0079] FIGS. 7 to 9 are graphs showing curves of jerk in the acceleration/deceleration curves depicted in FIGS. 4 to 6, respectively.

[0080] (1) Case of Sine Curve

[0081] The jerk function is obtained by differentiating the acceleration function of the expression (1). That is, the jerk function is given by the following expression. $J = {\begin{matrix} {2A_{\max}^{2}} \\ V_{\max} \end{matrix}{\cos \quad\begin{bmatrix} \begin{matrix} {2A_{\max}} \\ V_{\max} \end{matrix} & t \end{bmatrix}}\quad \left( {0\quad {t \cdot T}} \right)}$

[0082] Hence, the relational expression given by the following expression is obtained.

Jmax=2Amax ² /Vmax

[0083] Also in each of the cases (2) and (3) of the acceleration/deceleration curves, the relational expression is obtained in the same manner as described above. That is, the relational expression is as follows.

[0084] (2) Case of Modified Sine Curve (2)  Case  of  Modified  Sine  Curve $J = {\begin{matrix} {\left( {\pi + 2} \right)A_{\max}^{2}} \\ V_{\max} \end{matrix}\quad {\cos \quad\begin{bmatrix} {\left( {\pi + 2} \right)A_{\max}} \\ V_{\max} \end{bmatrix}}\quad {t\begin{bmatrix} 0 & t & \begin{matrix} T \\ 4 \end{matrix} \end{bmatrix}}}$ $J = {0\quad\left\lbrack {{\begin{matrix} T \\ 4 \end{matrix}\quad t} < {\begin{matrix} 3 \\ 4 \end{matrix}\quad T}} \right\rbrack}$ $J = {\begin{matrix} {\left( {\pi + 2} \right)A_{\max}^{2}} \\ V_{\max} \end{matrix}\quad {{\cos \begin{bmatrix} \begin{matrix} {\left( {\pi + 2} \right)A_{\max}} \\ V_{\max} \end{matrix} & {t - \pi} \end{bmatrix}}\quad\left\lbrack {\frac{3}{4}T\quad t\quad T} \right\rbrack}}$ $J_{\max} = \begin{matrix} {\left( {\pi + 2} \right)A_{\max}^{2}} \\ V_{\max} \end{matrix}$ (3)  Case  of  Triangular  Curve J = A  max²/V  max   (0 ≦ t < T/2) J = −Amax²/V  max   (T/2 ≦ t ≦ T) J  max  = A  max²/V  max 

[0085] The maximum jerk value Jx is given by the following expressions using the maximum velocity Vx at the switching point Sx and the predetermined maximum acceleration Amax on the basis of the aforementioned relational expressions. Incidentally, the maximum velocity Vx is obtained in accordance with the acceleration/deceleration curves by replacing Smin in the expressions (4), (8) and (12) with Sx while keeping Amax intact.

[0086] (1) Case of Sine Curve

Jx=2Amax ² /Vx

[0087] (2) Case of Modified Sine Curve

Jx=(π+2)·Amax ² /Vx

[0088] (3) Case of Triangular Curve

Jx=Amax ² /Vx

[0089] After the maximum jerk value Jx is obtained, both maximum velocity Va and maximum acceleration Aa are obtained. The maximum velocity Va and maximum acceleration Aa to be calculated newly are given through the following three expressions in accordance with each acceleration/deceleration curve. In each acceleration/deceleration curve, the maximum velocity Va and maximum acceleration Aa are calculated by the following expressions (13) and (14) respectively.

[0090] (1) Case of Sine Curve

Sx=π·Vx ²2Amax

S=π·Va ²/2Aa

2·Amax/Vx=2·Aa/Va

[0091] (2) Case of Modified Sine Curve

Sx=2π·Vx ²/(π+1)·Amax)

S=2π·Va ²/(π+2)·Amax)

((π+1)·Amax ²)/Vx=((π+2)·Aa ²)/Va

[0092] (3) Case of Triangular Curve

Sx=2Vx ² /Amax

S=2Va ² /Aa

Amax ² /Vx=Aa ² /Va

Va=Vx·(S/Sx⅔  (13)

Aa=Amax·(S/Sx)⅓  (14)

[0093] In this manner, the maximum velocity Va and maximum acceleration Aa are obtained in an acceleration/deceleration process having a designated jerk algorithm in accordance with the commanded quantity S of motor movement corresponding to the small movement. An acceleration/deceleration curve is generated on the basis of the maximum velocity Va and maximum acceleration Aa, so that acceleration/deceleration control is performed on the basis of the acceleration/deceleration curve.

[0094] Thereafter, the same operation as in the case of general positioning is carried out. That is, the operation termination time Tend is calculated (S7), the quantity of movement in each sampling time (Tsample) is calculated on the basis of the maximum velocity Va and maximum acceleration Aa, the target portion reference is obtained on the basis of the quantity of movement (S8 to S12), and the position reference value is supplied to the servomotor controller 4 (S13 and S14) while interlocking is made. The servomotor controller 4 converts the position reference value into a torque reference value and controls the servomotor 5 to move in accordance with the torque reference value. The processing from step S9 to step S14 is repeated up to the operation termination time Tend. When the operation termination time Tend (S10) is reached, the operation is terminated. Although this embodiment has shown the case where the termination of the operation is judged by time, it is a matter of course that the termination of the operation can be judged by the quantity of movement per se. The method of interlocking with the servomotor controller 4 is not limited to the aforementioned method.

[0095]FIG. 10 is a graph for explaining difference in residual vibration characteristic of a mechanical system at the time of the small movement between the case (a) where the mechanical system is under the designated acceleration control and the case (b) where the mechanical system is under the designated jerk control. Incidentally, the time and amplitude are shown along the horizontal axis and the vertical axis respectively, while this graph is not quantitatively rigorous. It is apparent from FIG. 10 that residual vibration in the designated jerk control is smaller than that in the designated acceleration control.

[0096] As described above in detail, in this embodiment, the maximum jerk value in the designated jerk control is made coincident with a predetermined value so that the maximum jerk value is limited and prevented from taking a large value. Hence, vibration given to a manipulator can be suppressed. Particularly at the time of driving (start of acceleration) or stopping (end of deceleration) of the manipulator when the jerk value is maximized, an arm of the manipulator can be driven or stopped without much vibration. Hence, residual vibration is reduced, so that speedy positioning can be performed and the working speed can be improved.

[0097] Moreover, the designated jerk control, the maximum jerk value at the switching point in the designated acceleration control is used as the maximum jerk value of the designated jerk control, so that the velocity, the acceleration and the moving time change continuously in accordance with the quantity of movement of the manipulator. Hence, a natural operation is obtained as a whole.

[0098] Moreover, the designated jerk control and designated acceleration control can be switched over to each other. Hence, a system can be constructed in consideration of both reduction of moving time and suppression of vibration.

[0099] Moreover, the switching point can be changed at user's option. Hence, the switching point can be set so as to be optimized in accordance with the accuracy, the allowable range of vibration, etc. required of the constructed system.

[0100] Moreover, the switching point can be designated by a nondimensional parameter (rate) . Hence, the switching point can be set without considering the quantity of motor movement.

[0101] Although this embodiment has been described in connection with the three cases of the acceleration function, the present invention is not limited thereto and any function can be selected if the function satisfies continuity.

[0102] Although this embodiment has been described upon the case where one servomotor 5 is provided, it is a matter of course that a plurality of servomotors may be provided. 

What is claimed is:
 1. In acceleration/deceleration control of changing acceleration continuously to thereby make acceleration or deceleration, a method of determining velocity and acceleration of a motor for generating an acceleration/deceleration/curve of the motor in the case where a commanded quantity of motor movement is smaller than a minimum quantity of motor movement which is required to allow the movement of said motor to reach a predetermined maximum velocity and a predetermined maximum acceleration, wherein said method comprises a step of determining a maximum velocity and a maximum acceleration for performing a designated jerk control in accordance with said commanded quantity of motor movement so as to make a maximum absolute value of jerk value which is differential value of acceleration, not larger than a predetermined value or equal to the predetermined value.
 2. In acceleration/deceleration control of changing acceleration continuously to thereby make acceleration or deceleration, a method of determining velocity and acceleration of a motor for generating an acceleration/deceleration curve of the motor in the case where a commanded quantity of motor movement is smaller than a minimum quantity of motor movement which is required to allow the movement of said motor to reach a predetermined maximum velocity and a predetermined maximum acceleration, wherein said method comprises a step of determining a maximum velocity and a maximum acceleration by selecting and performing one of two processes in accordance with the commanded quantity of motor movement, said two processes consisting of processes of: newly determining a maximum velocity for performing a designated acceleration control in accordance with said commanded quantity of motor movement while adapting said predetermined maximum acceleration as a maximum acceleration for said control; and determining a maximum velocity and a maximum acceleration for performing a designated jerk control in accordance with said commanded quantity of motor movement so as to make a maximum absolute value of jerk value, which is differential value of acceleration, not larger than a predetermined value or equal to the predetermined value.
 3. A method of determining velocity and acceleration of a motor according to claim 2 , wherein said predetermined value in said designated jerk control is the maximum absolute value of jerk value in said designated acceleration control at a switching point where the process is switched.
 4. A method of determining velocity and acceleration of a motor according to claim 3 , wherein the maximum absolute value of jerk value at said switching point is specified on the basis of a maximum velocity which is required to obtain the commanded quantity of motor movement by said predetermined maximum acceleration and on the basis of said predetermined maximum acceleration.
 5. A method of determining velocity and acceleration of a motor according to any one of claims 3 and 4, wherein setting of said switching point can be changed at option by a user.
 6. A method of determining velocity and acceleration of a motor according to any one of claims 3 through 5, wherein said switching point is designated by a nondimensional parameter.
 7. A method of determining velocity and acceleration of a motor according to claim 6 , wherein said parameter is a ratio with respect to said minimum quantity of motor movement.
 8. A method of determining velocity and acceleration of a motor according to any one of claims 1 through 7, wherein said designated jerk control is provided for performing positioning of a subject of control while suppressing vibration of said subject.
 9. A method for generating an acceleration/deceleration curve of a motor, comprising a step of generating an acceleration/deceleration curve on the basis of the maximum velocity and the maximum acceleration obtained by the method of determining velocity and acceleration of a motor defined in any one of claims 1 through
 8. 10. A method for performing acceleration/deceleration control of a motor to make said motor accelerated/decelerated by changing acceleration of said motor continuously, said method comprising a step of performing acceleration/deceleration control on the basis of a designated jerk control so as to make a maximum of an absolute value of jerk value, which is differential value of acceleration, not larger than a predetermined value or constantly equal to said predetermined value in the case where a commanded quantity of motor movement is smaller than a minimum quantity of motor movement which is required to allow the movement of said motor to reach a predetermined maximum velocity and a predetermined maximum acceleration.
 11. A method for performing acceleration/deceleration control of a motor to make said motor accelerated/decelerated by changing acceleration of said motor continuously, said method comprising a step of selecting and performing one of two control processes in accordance with a commanded quantity of motor movement in the case where the commanded quantity of motor movement is smaller than a minimum quantity of motor movement which is required to allow the movement of said motor to reach a predetermined maximum velocity and said predetermined maximum acceleration, said two control processes consisting of a designated acceleration control and a designated jerk control, said designated acceleration control controlling the motor so as to make a maximum acceleration in an accelerating/decelerating operation equal to the predetermined maximum acceleration, said designated jerk control controlling the motor so as to make a maximum absolute value of jerk value, which is differential value of acceleration not larger than or constantly equal to a predetermined value.
 12. A method for performing acceleration/deceleration control according to claim 11 , wherein said predetermined value in said designated jerk control is the maximum absolute value of jerk value in said designated acceleration control at a switching point where the process is switched.
 13. A method for performing acceleration/deceleration control according to claim 12 , wherein the maximum absolute value of jerk value at said switching point is specified on the basis of a maximum velocity which is required to obtain the commanded quantity of motor movement by said predetermined maximum acceleration and on the basis of said predetermined maximum acceleration.
 14. A method for performing acceleration/deceleration control according to any one of claims 12 and 13, wherein setting of said switching point can be changed at option by a user.
 15. A method for performing acceleration/deceleration control according to any one of claims 12 through 14, wherein said switching point is designated by a nondimensional parameter.
 16. A method for performing acceleration/deceleration control according to claim 15 , wherein said parameter is a ratio with respect to said minimum quantity of motor movement.
 17. A method for performing acceleration/deceleration control according to any one of claims 10 through 16, wherein said designated jerk control is provided for performing positioning of a subject control while suppressing vibration of said subject.
 18. An acceleration/deceleration control apparatus for performing acceleration/deceleration control of a motor to make said motor accelerated/decelerated by changing acceleration of said motor continuously, said apparatus comprising: a velocity and acceleration determining means for determining a maximum velocity and a maximum acceleration for performing a designated jerk control so as to make a maximum absolute value of jerk value, which is differential value of acceleration, not larger than or constantly equal to a predetermined value, in the case where a commanded quantity of motor movement is smaller than a minimum quantity of motor movement which is required to allow the movement of said motor to reach a predetermined maximum velocity and a predetermined maximum acceleration; and a reference value generating means for generating and outputting a position reference value on the basis of said maximum velocity and maximum acceleration obtained by said velocity and acceleration determining means.
 19. An acceleration/deceleration control apparatus for performing acceleration/deceleration control of a motor to make said motor accelerated/decelerated by changing acceleration of said motor continuously, said apparatus comprising: a velocity and acceleration determining means for determining a maximum velocity and a maximum acceleration by selecting and performing one of two processes in accordance with a commanded quantity of motor movement in the case where the commanded quantity of motor movement is smaller than a minimum quantity of motor movement which is required to allow the movement of said motor to reach a predetermined maximum velocity and a predetermined maximum acceleration, said two processes consisting of a process for newly determining a maximum velocity for performing a designated acceleration control on the basis of the commanded quantity of motor movement so as to make a maximum acceleration in an accelerating/decelerating operation equal to the predetermined maximum acceleration, and another process for newly determining a maximum velocity and a maximum acceleration for performing a designated jerk control on the basis of the commanded quantity of motor movement so as to make a maximum absolute value of jerk value, which is differential value of acceleration, not larger than or constantly equal to a predetermined value; and a reference value generating means for generating and outputting a position reference value on the basis of said maximum velocity and maximum acceleration obtained by said velocity and acceleration determining means.
 20. An acceleration/deceleration control control apparatus according to claim 19 , wherein said predetermined value in said designated jerk control is the maximum absolute value of jerk value in said designated acceleration control at a switching point where the process is switched.
 21. An acceleration/deceleration control apparatus according to claim 20 , wherein the maximum absolute value of jerk value at said switching point is specified on the basis of a maximum velocity which is required to obtain the commanded quantity of motor movement by said predetermined maximum acceleration and on the basis of said predetermined maximum acceleration.
 22. An acceleration/deceleration control apparatus according to any one of claims 20 and 21, further comprising a setting means for setting and changing said switching point.
 23. An acceleration/deceleration control apparatus according to any one of claims 20 through 22, wherein said switching point is designated by a nondimensional parameter.
 24. An acceleration/deceleration control apparatus according to claim 23 , wherein said parameter is a ratio with respect to said minimum quantity of motor movement.
 25. An acceleration/deceleration control apparatus according to any one of claims 18 through 24, wherein said designated jerk control is provided for performing positioning of a subject of control while suppressing vibration of said subject.
 26. A motor control apparatus comprising means for receiving a position reference value supplied from the acceleration/deceleration control apparatus defined in any one of claims 18 through 25 so as to control at least one motor in accordance with said position reference value. 